package com.hitqz.robot.api.business.enums;

import com.hitqz.robot.api.common.dto.form.FormConfigDto;
import com.hitqz.robot.api.common.dto.form.FormFieldConfigDto;

import java.util.List;

/**
 * 动态表单
 * @author wengyx
 * @date 2024/8/7
 */
public enum FormConfigEnum {

    ROBOT_PARAMS_CONFIG("robot_params_config", "机器人参数配置", "用来配置机器人传感器及运行参数的表单", "0"),

    //工单类表单
    TICKETS_PARAMS_AGV("tickets_params_agv", "运输工单上下文参数配置", "用来构造运输工单的表单", "0"),

    TICKETS_PARAMS_PATROL("tickets_params_patrol", "巡检工单上下文参数配置", "用来构造巡检工单的表单", "0"),

    TICKETS_PARAMS_OPERATION("tickets_params_operation", "巡操作工单上下文参数配置", "用来构造巡操作工单的表单", "0"),

    TICKETS_PARAMS_CUSTOM("tickets_params_custom", "自定义工单上下文参数配置", "用来构造自定义工单的表单", "0"),


    ;

    private final String formName;        // 表单名称
    private final String formTitle;       // 表单标题
    private final String formDescription; // 表单描述
    private final String visible; // 是否展示

    FormConfigEnum(String formName, String formTitle, String formDescription, String visible) {
        this.formName = formName;
        this.formTitle = formTitle;
        this.formDescription = formDescription;
        this.visible = visible;
    }

    // 生成 FormConfigDto 的方法
    public FormConfigDto toFormConfigDto(List<FormFieldConfigDto> fields) {
        FormConfigDto formConfigDto = new FormConfigDto();
        formConfigDto.setFormName(this.formName);
        formConfigDto.setFormTitle(this.formTitle);
        formConfigDto.setFormDescription(this.formDescription);
        formConfigDto.setFields(fields);
        return formConfigDto;
    }

    // Getter 方法（如果需要单独获取某个属性）
    public String getFormName() {
        return formName;
    }

    public String getFormTitle() {
        return formTitle;
    }

    public String getFormDescription() {
        return formDescription;
    }
}
